1. Field of the Invention
The present invention relates generally to wireless communications, and more particularly, to a method and system for improving high speed data transmission efficiency between a packet data sending unit and a packet data receiving unit by dynamically controlling the passage of data frames from the data link layer to the medium access control layer of the 7-layer OSI network architecture.
2. Description of the Prior Art
Fixed wireless systems are used to communicate voice and high speed data (HSD) between a base station (BS) and multiple remote units (RU) over an air-interface. HSD is generally used for web browsing, down loads and file transfer protocols (FTP). All data must be transferred notwithstanding the predictable errors caused by the communications links employed in the system (e.g., a 10E-03 Bit Error Rate (BER)). Accordingly, communication protocols have been developed for transmitting data in discrete blocks commonly referred to as xe2x80x9cframes.xe2x80x9d These frames are evaluated at the receiving end to determine if the data is correctly received. If certain frames are in error or missed, those frames are retransmitted by the sending station.
Communications protocols are commonly based on the layered network architecture such as OSI. This is a 7-layer architecture including a physical layer (connectors, media, electrical signaling), a data link layer (DLL), which packages the data into frames, and manages data transmission over a link (error handling and the like), and a medium access control (MAC) layer that facilitates access control (when each station may transmit). One way of achieving full-duplex data transmission over a single communication channel utilizes what is known in the art as a xe2x80x9csliding window protocol.xe2x80x9d At any instant in time, the sender maintains a list of consecutive sequence numbers corresponding to frames it is permitted to send. These frames fall within a xe2x80x9csending window.xe2x80x9d In the same manner, the receiver maintains a xe2x80x9creceiving windowxe2x80x9d corresponding to the frames it is permitted to accept. The sending and receiving windows do not necessarily have the same upper and lower limits, or the same size. The sequence numbers within the sender""s window represent frames sent but not yet acknowledged. Whenever a new data packet arrives from the network layer, it is given the next highest sequence number, and the upper edge of the window is advanced by one. When an acknowledgement is received, the lower edge of the window is advanced by one. The window continuously maintains a list of unacknowledged frames. Since frames currently within the sender""s window may be lost or changed during transmission, the sender must keep all the sent frames in memory in the event a retransmission is required. Accordingly, if the maximum window size is xe2x80x9cKxe2x80x9d, the sender needs K buffers to hold the unacknowledged frames in memory. If the window ever exceeds it""s maximum size, the sending data link layer must shut off the network layer until a buffer is freed up. The receiving data link layer""s window corresponds to the frames it can accept. Any frame that falls outside the window is discarded. When a frame with a sequence number equal to the lower edge of the window is received, that frame is passed to the network layer, an acknowledgment is generated to the sender, and the window is rotated by one. Unlike the sender""s window, the receiver""s window always remains at its initial size.
An example of a sliding window protocol in a data communications system is disclosed in U.S. Pat. No. 4,841,526. In the ""526 patent, the window size of the sending or receiving station is selected in accordance with the speed, length or error rate of the communication link or frame size used to maximize the communication link. The negative limit acknowledgements sent by the receiving station specify the upper and lower of a range of identification numbers of frames unsuccessfully received to increase transmission efficiency. Before data is transmitted, the sending and receiving stations exchange preferred sets of link parameters and generate a modified set of link parameters to resolve potential conflicts. One of the sending and receiving stations stores a table defining the frame sizes for use with different bit error rates of the communication link. The station evaluates the current bit error rate to select the optimum frame size from the table and adjust the frame size. The ""526 Patent also discloses a mechanism for selectively rejecting a plurality of missed frames by identifying the number of successive frames that have to be retransmitted from the sending station, as a xe2x80x9cpayloadxe2x80x9d in the selective reject message. In this scheme, a single negative acknowledgment message sent by the receiving station specifies the upper and lower limits of a range of identification numbers of frames that were unsuccessfully received by the receiving station.
In general, the MAC layer is very close to the physical transmission of data (e.g., a wireless transmission) and provides the means of controlling access to the transmission medium in order to provide for an orderly and efficient use of the network""s transmission capacity. Examples of well known medium access control protocols include Carrier Sense Multiple Access with Collision Detection (CSMA/CD), Multiple Level Multi-Access (MLMA), binary count down, limited contention protocols, adaptive tree walk protocol and the like. In CSMA/CD, for example, a station seeking to transmit first listens to the transmission medium to determine if another transmission is in progress (i.e., carrier sense). If the transmission medium is busy, the station waits. If the medium is idle, the station can transmit. If two or more stations attempt to transmit at about the same time, there will be a collision and the data will be garbled. To account for this condition, a station will wait a reasonable amount of time after transmitting for an acknowledgment factoring into account the maximum round-trip propagation delay and the need for the acknowledging station to contend for the channel to respond. If there is no acknowledgement, the station assumes that a collision has occurred and retransmits.
In fixed wireless systems, broadband data such as data traveling over the Internet is transmitted over a wireless link, and passed through the MAC layer before transmission. Communication of broadband data is often slower over a wireless link than over other channels. Accordingly, broadband data is communicated from the DLL to the MAC layer at a rate that is typically much greater than that which can be broadcasted over the air link. If the Data Link Layer is driving at a faster rate than the transmission capacity of the airline, the lower layers will quickly fill up a data queue in the MAC layer. The DLL has a retransmission timer associated with the data frames that is activated upon transmission of the frames from the DLL at the packet data sending unit to the packet data receiving unit via the MAC layer. Upon a timeout, an error is assumed and the DLL layer retransmits the data frames to the MAC layer. However, when the MAC layer is congested or busy it may not handle the data frames before a timeout occurs, thereby resulting in wasteful retransmission of frames and a consequent reduction in system performance.
In view of the above, it is an object of the present invention to provide a system and method for reducing congestion and duplication of data frames transmitted between a packet data sending unit and a packet data receiving unit.
It is another object of the present invention to utilize messaging between the MAC layer and DLL to communicate congestion in the MAC layer so that in response to detected congestion in the MAC layer, the DLL will hold new data frames in a queue in the DLL until it is detected that such congestion has cleared, at which time the DLL will pass the waiting frames from the DLL queue to the MAC layer.
In accordance with the above objects and additional objects that will become apparent hereinafter, the present invention provides a medium access control dynamic control mechanism, in which the DLL and the MAC layer connected to each other by data and control paths. The data path is operable to exchange frames between the DLL and the MAC layer, the control path is operable to exchange control messages between the DLL and the MAC layer. The DLL includes a queue for storing frames received from the upper layer, and a retransmission timer at the expiration of which a data frame is retransmitted from the packet sending unit to the packet receiving unit if an acknowledgement from the packet receiving unit has not been received prior to expiration of the retransmission timer. The MAC layer also includes a queue for storing frames received from the DLL. When congestion at the lower layers is detected, the MAC layer will send a congestion message to the DLL. The DLL is adapted to pass new data frames from a higher layer relative to the data link layer into the DLL queue and to suspend the retransmission timer upon receipt of the congestion message from the MAC layer. In the illustrative embodiment, the congestion message is generated in response to a predetermined level in the MAC queue. The predetermined level can fall within a xe2x80x9ccongestion rangexe2x80x9d by setting two predetermined threshold values in the queue. When the congestion range in the MAC queue falls to a certain level, the MAC layer sends a control message indicating an uncongested state to the DLL and frames are then passed to the MAC from the DLL, and the retransmission timer is restarted.
In accordance with the invention, there is also provided a method of using dynamic medium access control to reduce duplication of retransmitted data frames and increase efficiency, comprising the steps of: the MAC layer detecting congestion; the MAC layer communicating a control message with the DLL indicating a congested state; in the congested state, the data link layer placing frames received from a higher layer into a data link layer queue and suspending frame transmission to the MAC layer; and upon receipt of a control message indicating an uncongested state, the DLL sending frames to the MAC layer. The method includes the step of suspending the retransmission timer at the data link layer upon receipt of the control message indicating the congested state, and the step of restarting the retransmission timer at the data link layer associated with at least one frame upon receipt of the control message indicating the uncongested state.
The present invention will now be described with particular reference to the accompanying drawings.